home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (DO)
/
Micro on the Apple Volume 2 (1981)(Micro Ink).zip
/
Micro on the Apple Volume 2 (1981)(Micro Ink).do
/
THERMOMETER.bas
< prev
next >
Wrap
BASIC Source File
|
1996-12-24
|
4KB
|
92 lines
10 REM ************************
15 REM * *
20 REM * DIGITAL THERMOMETER *
25 REM * CARL KERSHNER *
30 REM * *
35 REM * THERMOMETER *
40 REM * *
45 REM * COPYRIGHT (C) 1981 *
50 REM * MICRO INK, INC. *
55 REM * CHELMSFORD, MA 01824 *
60 REM * ALL RIGHTS RESERVED *
65 REM * *
70 REM ************************
80 REM
90 REM
100 REM DIGITAL THERMOMETER FOR THERMISTOR PROBE(DISPLAYS BOTH CELCIUS &FAHRENHEIT)
110 PRINT "WHICH INPUT DO YOU WANT(0,1,2,3)": INPUT NUMBER
120 PRINT "WHAT THERMISTOR CONSTANTS DO YOU WANT(RO,RATIO)": INPUT RO,RA
125 BETA = 1.7636E3 * LOG(RA)
130 HOME : REM CLEAR SCREEN
140 REM PRINT TEMPERATURE SCALE CHARACTERS
150 GR : COLOR= 15
160 HLIN 26,27 AT 6: HLIN 26,27 AT 7: HLIN 26,27 AT 9: HLIN 26,27 AT 10: VLIN 7,9 AT 25: VLIN 7,9 AT 28
170 HLIN 34,38 AT 9: HLIN 34,38 AT 10: HLIN 34,36 AT 14: HLIN 34,36 AT 15: VLIN 9,20 AT 33
180 HLIN 26,27 AT 23: HLIN 26,27 AT 24: HLIN 26,27 AT 26: HLIN 26,27 AT 27: VLIN 24,26 AT 25: VLIN 24,26 AT 28
190 VLIN 28,29 AT 38: VLIN 27,28 AT 37: VLIN 26,27 AT 36: VLIN 26,27 AT 35: VLIN 27,28 AT 34
200 VLIN 28,35 AT 33: VLIN 35,36 AT 34: VLIN 36,37 AT 35: VLIN 36,37 AT 36: VLIN 35,36 AT 37: VLIN 34,35 AT 38
210 T = 298: REM SET T(0) AT 298 DEGREES ABSOLUTE
220 RI = 589.94 * PDL(NUMBER): REM READ INPUT & SCALE TO OHMS
230 IF RI = 0 THEN RI = 1: REM PREVENT DIVISION BY ZERO
240 TC = INT(1/(1/T - LOG(RO/RI)/BETA) -272.5): REM CALCULATE TEMPERATURE IN DEGREES CELCIUS AND ROUND TO NEAREST INTEGER
245 IF ABS(TC) >999 THEN GOTO 220: REM LIMIT OVERFLOWING DISPLAY
250 SIGN = 0
260 IF TC <0 THEN SIGN = 15
270 COLOR= SIGN
280 HLIN 3,5 AT 29: HLIN 3,5 AT 30: REM DISPLAY NEGATIVE SIGN
290 TC = ABS(TC)
300 J = INT(TC/100):I = J: REM SEPARATE HUNDRED'S DIGIT
310 IF J = 0 THEN J = 10: REM BLANK LEADING ZERO
320 X = 1:Y = 26: GOSUB 1000: REM DISPLAY CELCIUS HUNDRED'S
330 J = INT((TC -J *100)/10): REM SEPARATE TEN'S DIGIT
340 IF I = 0 AND J = 0 THEN J = 10: REM BLANK BOTH HUNDRED'S AND TEN'S LEADING ZEROS IF J&I ARE BOTH ZERO
350 X = 9:Y = 26: GOSUB 1000: REM DISPLAY CELCIUS TEN'S DIGIT
360 J = TC -I *100 -J *10: REM SEPARATE ONE'S DIGIT
370 X = 17:Y = 26: GOSUB 1000: REM DISPLAY CELCIUS ONE'S DIGIT
380 TF = INT(9 *(1/(1/T - LOG(RO/RI)/BETA) -273)/5 +32.5): REM CALCULATE FAHRENHEIT & ROUND TO NEAREST INTEGER
390 SIGN = 0
400 IF TF <0 THEN SIGN = 15
410 COLOR= SIGN
420 HLIN 3,5 AT 12: HLIN 3,5 AT 13: REM DISPLAY NEGATIVE SIGN
430 TF = ABS(TF)
440 J = INT(TF/100):I = J: REM SEPARATE HUNDRED'S DIGIT
450 IF J = 0 THEN J = 10: REM BLANK LEADING ZERO
460 X = 1:Y = 9: GOSUB 1000: REM DISPLAY FAHRENHEIT HUNDRED'S DIGIT
470 J = INT((TF -J *100)/10): REM SEPARATE TEN'S DIGIT
480 IF I = 0 AND J = 0 THEN J = 10: REM BLANK BOTH HUNDRED'S AND TEN'S LEADING ZEROS
490 X = 9:Y = 9: GOSUB 1000: REM DISPLAY FAHRENHEIT TEN'S DIGIT
500 J = TF -I *100 -J *10: REM SEPARATE ONE'S DIGIT
510 X = 17:Y = 9: GOSUB 1000: REM DISPLAY FAHRENHEIT ONE'S DIGIT
520 GOTO 220
1000 REM SEVEN SEGMENT ENCODER
1010 ON J GOTO 1110,1120,1130,1140,1150,1160,1170,1180,1190,1200
1100 A = 15:B = 15:C = 15:D = 15:E = 15:F = 15:G = 0: GOTO 2000
1110 A = 0:B = 15:C = 15:D = 0:E = 0:F = 0:G = 0: GOTO 2000
1120 A = 15:B = 15:C = 0:D = 15:E = 15:F = 0:G = 15: GOTO 2000
1130 A = 15:B = 15:C = 15:D = 15:E = 0:F = 0:G = 15: GOTO 2000
1140 A = 0:B = 15:C = 15:D = 0:E = 0:F = 15:G = 15: GOTO 2000
1150 A = 15:B = 0:C = 15:D = 15:E = 0:F = 15:G = 15: GOTO 2000
1160 A = 15:B = 0:C = 15:D = 15:E = 15:F = 15:G = 15: GOTO 2000
1170 A = 15:B = 15:C = 15:D = 0:E = 0:F = 0:G = 0: GOTO 2000
1180 A = 15:B = 15:C = 15:D = 15:E = 15:F = 15:G = 15: GOTO 2000
1190 A = 15:B = 15:C = 15:D = 15:E = 0:F = 15:G = 15: GOTO 2000
1200 A = 0:B = 0:C = 0:D = 0:E = 0:F = 0:G = O:J = 0: GOTO 2000
2000 REM SEVEN SEGMENT DISPLAY
2010 COLOR= A
2020 HLIN X +1,X +4 AT Y
2030 HLIN X +1,X +4 AT Y +1
2040 COLOR= G
2050 HLIN X +1,X +4 AT Y +5
2060 HLIN X +1,X +4 AT Y +6
2070 COLOR= D
2080 HLIN X +1,X +4 AT Y +10
2090 HLIN X +1,X +4 AT Y +11
2100 COLOR= F
2110 VLIN Y +1,Y +5 AT X
2120 COLOR= B
2130 VLIN Y +1,Y +5 AT X +5
2140 COLOR= E
2150 VLIN Y +6,Y +10 AT X
2160 COLOR= C
2170 VLIN Y +6,Y +10 AT X +5
2180 RETURN